package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 水舱排放信息对象 mr_water_tank_discharge_info
 *
 * @author lsw
 * @date 2025-10-13
 */
@Setter
@Getter
public class MrWaterTankDischargeInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 唯一标识符 */
    private String uuid;

    /** 设备系统ID */
    private String systemId;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 排放开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "排放开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date dischargeStartTime;

    /** 排放开始高度 */
    @Excel(name = "排放开始高度")
    private BigDecimal dischargeStartHeight;

    /** 排放结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "排放结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date dischargeEndTime;

    /** 排放结束高度 */
    @Excel(name = "排放结束高度")
    private BigDecimal dischargeEndHeight;

    /** 当前液面高度 */
    @Excel(name = "当前液面高度")
    private BigDecimal currentWaterLevel;

    /** 排放停止液面高度差 */
    @Excel(name = "排放停止液面高度差")
    private BigDecimal dischargeHeightDiff;

    /** 是否有报警 (0:无报警, 1:有报警) */
    @Excel(name = "是否有报警 (0:无报警, 1:有报警)")
    private Long hasAlarm;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date createdTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date updatedTime;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date startTime;

    /** 停止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date stopTime;

    /** 指定月份之前的数据*/
    private String moon;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("uuid", getUuid())
                .append("systemId", getSystemId())
                .append("deviceName", getDeviceName())
                .append("dischargeStartTime", getDischargeStartTime())
                .append("dischargeStartHeight", getDischargeStartHeight())
                .append("dischargeEndTime", getDischargeEndTime())
                .append("dischargeEndHeight", getDischargeEndHeight())
                .append("currentWaterLevel", getCurrentWaterLevel())
                .append("dischargeHeightDiff", getDischargeHeightDiff())
                .append("hasAlarm", getHasAlarm())
                .append("createdTime", getCreatedTime())
                .append("updatedTime", getUpdatedTime())
                .toString();
    }
}
